<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="../js/tools.js"></script>
    <script>


        // 如果有形参，但是没有给实参，在js中不会报错
        // 几个形参就对应几个实参，但是多的实参，没有任何意义，也不会报错

        //    形参本质上是局部变量，用于接收实参
        //    如果没有传实参，那么形参的值就是undefined
        //    需要给形参一个默认值  n = n || 5    -----    短路赋值




        // 产生n位验证码 ， 默认产生5位
        function randCode(n) {
            console.log(n);   // undefined
            // n = 5 ;
            // if(n === undefined) {
            //     n = 5
            // }

            n = n || 5 ;

            var result = '' ;
            for(var i = 0 ; i < n ; i++) {
                result += rand(0,10) ;
            }
            // document.write(result) ;
            return result ;
        }


        // 如果有形参，但是没有给实参，在js中不会报错
        var res = randCode(7) ;
        console.log(res);   // ''












        // alert(1) || alert(2) ;    // 1  2

        // var a = 1 ;
        // a++ && a++ ;
        // console.log(a);   // 3


        // var a = 0 ;
        // a++ && a++ ;
        // // 表达式的结果   0
        // // a的结果
        // console.log(a);   

        // 0 && a++ ;   // 见假即为假   短路


        // // if(a > 10 && a > 100) {}   a=1   a>10就是不成立的    短路  后面的代码不执行

      


        // 短路赋值

        var b = 1 || 2 ;
        console.log(b);   // 1

        var c = 1 && 2 ;
        console.log(c);  // 2

        var d = 0 || 1 ;
        console.log(d);  // 1

        var e = 0 && 2 ;
        console.log(e);  // 0






        // 求两个数的和
        function he(a , b) {
            a = a || 0 ;
            b = b || 0 ;
            return a + b;
        }

        // var res = he(1,2) ;
        // document.write(res) ;  // 3

        var res = he() ;
        document.write(res) ;  // undefined + undefined = NaN


        // var m = 4 ;
        // m % 2 && alert('奇数') ;



    </script>
    
</body>
</html>